////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//  Filename:    PrinceOfSherwoodGuts.h                                       //
//  Developer:   George Chapman                                               //
//  Create date: 02/22/2005                                                   //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//  Description: This is the class definition for the slot gut for the        //
//               Australian Slot machine called Prince of Sherwood.           //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
//        Copyright (c) 2004 - Realtime Gaming.  All rights reserved.         //
////////////////////////////////////////////////////////////////////////////////

#ifndef PRINCEOFSHERWOODGUTS_H
#define PRINCEOFSHERWOODGUTS_H

////////////////////////////////////
// Include Files                  //
////////////////////////////////////
#include "slotguts.h"
#include "getrand.h"

class PrinceOfSherwoodGuts : public SlotGuts
{

    // Shared enums between client and server
    #include "PrinceOfSherwoodCommon.h"

	public:
		PrinceOfSherwoodGuts();			  // Default Constructor
		virtual ~PrinceOfSherwoodGuts();  // Destructor

        // Overrides of virtual functions from SlotsGuts.
		virtual void  classifyStops(SpinLine* spinline, uint8* stops,uint8 bet, uint8 line, uint8& rtnresult, uint8& multiplier);
		virtual void  classifyScatters(SlotSpin *spin);
        virtual bool8 isValidGuts();
        virtual void  getGameModeMultiplierAndNoteId( uint8& nGameModeMultiplier, uint8& nNoteId );
		virtual bool8 processClientData(uint8 bonusGameType, int32 bonusDataCount, int32 *bonusData);

	protected:

		virtual void  initializeFeatureGame();

		virtual void  setFeatureGameMultiplier(int32 nFeatureGameMultiplier);
		virtual int32 getFeatureGameMultiplier() const;
		virtual void  setFeatureGameNumFreeGames(int32 nNumFreeGames);
		virtual int32 getFeatureGameNumFreeGames() const;
		virtual void  setFeatureGameState(int32 nState);
		virtual int32 getFeatureGameState() const;
		virtual void  setFeatureGamePlayerShot(int32 nFeatureGameMultiplier);
		virtual int32 getFeatureGamePlayerShot() const;
		virtual void  setFeatureGameNonPlayerShot(int32 nFeatureGameMultiplier);
		virtual int32 getFeatureGameNonPlayerShot() const;
		virtual void  setFeatureGamePlayerArcherChoice(int32 nPlayerArcherChoice);
		virtual int32 getFeatureGamePlayerArcherChoice() const;
		virtual void  setFeatureGameNonPlayerArcherChoice(int32 nNonPlayerArcherChoice);
		virtual int32 getFeatureGameNonPlayerArcherChoice() const;
		virtual void  setFeatureGameNumScatterSymbols(int32 nNumScatterSymbols);
		virtual int32 getFeatureGameNumScatterSymbols() const;
		virtual int32 getBonusGameState() const;
		virtual void  setBonusGameState( int32 bonusGameState );
        virtual bool8 hasSavedGames();

        virtual void preSpinClassifyResults(SlotSpin *spin);
		virtual void Debug_SetLoserStops( uint8* pStops );

};
#endif //[#ifdef PRINCEOFSHERWOODGUTS_H]